#!/usr/bin/env python3
# _*_coding:utf-8_*_
# cockroach
# email:donnie.fan@foxmail.com

import subprocess

# 执行命令，返回命令执行状态 ， 0 or 非0

res = subprocess.call(['ls','-l'])
print(res)



# 执行命令，如果命令结果为0，就正常返回，否则抛异常
res = subprocess.check_call('ls -l',shell=True)
print(res)

res = subprocess.check_call('ls -lsdfff',shell=True)
print(res)


# 接收字符串格式命令，返回元组形式，第1个元素是执行状态，第2个是命令结果

res = subprocess.getstatusoutput('ls /bin/ls')
print(res)

# 接收字符串格式命令，并返回结果
res = subprocess.getoutput('ls /bin/ls')
print(res)


# 执行命令，并返回结果，注意是返回结果，不是打印，下例结果返回给res
res = subprocess.check_output('ls -l',shell=True)
print(res)

#上面那些方法，底层都是封装的subprocess.Popen

# poll()
# Check if child process has terminated. Returns returncode
res = subprocess.Popen('ls -l',shell=True)
res.stdout.read()







